const { getInvestTree } = require("./axios");
const xlsx = require("node-xlsx");

const companyList = ["清华大学资产管理有限公司", "清华控股有限公司", "清华大学教育基金会"];

async function runPromise() {
    let res;
    for (let i = 0; i < companyList.length; i++) {
        let item = companyList[i];

        let res = await getInvestTree(item);
        res.result = JSON.parse(res.result);
        // fs.writeFile(`../data/${dayjs().format("YYMMDD")}-股权-${item}.json`, JSON.stringify(res), (err) => {
        //     if (err) throw err;
        //     console.log("The file has been saved!");
        // });
       res;
      res = geteXlsxArr(item, res.result);
    }
    return res
}

function geteXlsxArr(cname, data) {
    const sheetTitle = [
        "上级机构名称",
        "法定代表人",
        "控股比例",
        "联系方式",
        "经营状态",
        "企业类型",
        "注册地址",
        "经营范围",
        "行政区划",
        "所属行业",
        "统⼀社会信⽤代码",
    ];
    const xlsxArr = [
        {
            name: cname,
            data: [["一级", "二级", "三级", "四级", "五级", "六级"]],
        },
        {
            name: "一级对应字段",
            data: [["一级单位", ...sheetTitle]],
        },
        {
            name: "二级对应字段",
            data: [["二级单位", ...sheetTitle]],
        },
        {
            name: "三级对应字段",
            data: [["三级单位", ...sheetTitle]],
        },
        {
            name: "四级对应字段",
            data: [["四级单位", ...sheetTitle]],
        },
        {
            name: "五级对应字段",
            data: [["五级单位", ...sheetTitle]],
        },
        {
            name: "六级对应字段",
            data: [["六级单位", ...sheetTitle]],
        },
    ];

    function singleSheet(level, data, parent) {
        // 分表逻辑
        let sheet = xlsxArr[level];
        sheet.data.push([
            data.name, // "二级单位",
            parent.length ? parent[parent.length - 1] : "", // "上级机构名称",
            "", // "法定代表人",
            data.percent, // "控股比例",
            "", // "联系方式",
            data.regStatus, // "经营状态",
            data.lable, // "企业类型",
            "", // "注册地址",
            "", // "经营范围",
            "", // "行政区划",
            "", // "所属行业",
            data.creditCode, // "统⼀社会信⽤代码",
        ]);

        // 总表逻辑
        if (data.children.length) {
            data.children.forEach((item) => {
                singleSheet(level + 1, item, [...parent, data.name]);
            });
        } else {
            // 总sheet
            xlsxArr[0].data.push([...parent, data.name]);
        }
    }

    data.forEach((item) => {
        singleSheet(1, item, []);
    });

    console.log(JSON.stringify(xlsxArr));
    return xlsx.build(xlsxArr);
    // fs.writeFileSync(`../data/exportFile/${cname}.xlsx`, xlsx.build(xlsxArr), "binary");
}

// runPromise();
module.exports = runPromise;

